Amazon RDS を目的のバージョンへアップグレードできない
困っていた内容
Aurora MySQL をバージョンアップしようとしましたが、RDSコンソールのクラスター変更画面で、目的のバージョンがプルダウンに表示されません。
AWS CLI でもエラーとなります。どうしたらバージョンアップできますか?
$ aws rds modify-db-cluster --db-cluster-identifier mydatabase --engine-version 5.7.mysql_aurora.2.07.2 --apply-immediately
An error occurred (InvalidParameterCombination) when calling the ModifyDBCluster operation: Cannot upgrade aurora-mysql from 5.7.mysql_aurora.2.04.4 to 5.7.mysql_aurora.2.07.2
どう対応すればいいの?
RDS ではあるバージョンからバージョンアップが可能なアップグレードパスがあり、それは describe-db-engine-versions コマンドで確認できます。
$ aws rds describe-db-engine-versions --engine aurora-mysql --engine-version 5.7.mysql_aurora.2.04.4 | grep -A 200 "ValidUpgradeTarget"|grep "EngineVersion"
"EngineVersion": "5.7.mysql_aurora.2.04.5",
"EngineVersion": "5.7.mysql_aurora.2.04.6",
"EngineVersion": "5.7.mysql_aurora.2.04.7",
"EngineVersion": "5.7.mysql_aurora.2.04.8",
"EngineVersion": "5.7.mysql_aurora.2.04.9",
"EngineVersion": "5.7.mysql_aurora.2.05.0",
"EngineVersion": "5.7.mysql_aurora.2.05.1",
"EngineVersion": "5.7.mysql_aurora.2.06.0",
"EngineVersion": "5.7.mysql_aurora.2.07.1",
"EngineVersion": "5.7.mysql_aurora.2.07.1",
"EngineVersion": "5.7.mysql_aurora.2.08.0",
"EngineVersion": "5.7.mysql_aurora.2.08.1",
"EngineVersion": "5.7.mysql_aurora.2.08.2",
"EngineVersion": "5.7.mysql_aurora.2.08.3",
"EngineVersion": "5.7.mysql_aurora.2.09.0",
"EngineVersion": "5.7.mysql_aurora.2.09.1",
"EngineVersion": "5.7.mysql_aurora.2.09.2",
この例だと 5.7.mysql_aurora.2.07.2 が表示されず、2.04.4 から直接アップグレードすることができないことが確認できます。(2021/03/02時点)
では、どうすればアップグレードできるのか?ですが、 目的のバージョンにアップグレード可能なバージョンを経由してアップグレードしてください。 例の場合だと、2.04.5 等へ一度アップグレードすることで、2.07.2 へのアップグレードが可能となります。
なお、これは Aurora だけでなく、RDS for PostgreSQL などでも同様です。 目的のバージョンが出てこないときは、一度上記の方法で確認してみてください。
参考資料
describe-db-engine-versions — AWS CLI 1.18.64 Command Reference
Amazon RDS を PostgreSQLのメジャーバージョンとマイナーバージョンにアップグレードするためのベストプラクティス